package com.example.minefieldkeepercloud.interfac;

import android.util.Log;

import java.util.ArrayList;
import java.util.List;

/**
 * 被观察者
 * 实现了Observerable接口，对Observerable接口的三个方法进行了具体实现
 * @author jstao
 *
 */
public class WechatServer implements Observerable {

    //注意到这个List集合的泛型参数为Observer接口，设计原则：面向接口编程而不是面向实现编程
    private List<Observer> list;
    private int dateType;

    private String date;
    private int factoryID;

    public WechatServer() {
        list = new ArrayList<Observer>();
    }

    @Override
    public void registerObserver(Observer o) {

        if (o!=null)
        {
            list.add(o);
            Log.i("-->","添加fragment:"+o);

        }

    }

    @Override
    public void removeObserver(Observer o) {
        if(!list.isEmpty())
            list.remove(o);
    }

    //遍历
    @Override
    public void notifyObserver() {
        for(int i = 0; i < list.size(); i++) {
            Observer oserver = list.get(i);
            oserver.updateParameter(dateType,date,factoryID);
        }
    }

    /**
     * 发送消息
     * @param dateType 0  按日统计 1按月统计
     * @param date 日期
     * @param factoryID 矿场id
     */
    public void setInfomation(int dateType, String date, int factoryID) {
        this.dateType = dateType;
        this.date = date;

        this.factoryID=factoryID;

        //消息更新，通知所有观察者
        notifyObserver();
    }

}